Appearance
HJ26 字符串排序
本节目标:理解“HJ26 字符串排序”的核心思路,并能把它用于实际开发或面试表达。 中等 通过率:39.16% 时间限制:1秒 空间限制:32M 知识点==字符串====排序== 描述 编写一个程序,将输入字符串中的字符按如下规则排序。
规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
如,输入: Type 输出: epTy
规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入: BabA 输出: aABb
规则 3 :非英文字母的其它字符保持原来的位置。
如,输入: By?e 输出: Be?y
数据范围:输入的字符串长度满足 1≤�≤1000 1≤n≤1000
输入描述: 输入字符串 输出描述: 输出字符串 示例1 输入: A Famous Saying: Much Ado About Nothing (2012/8). ==复制== 输出: A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
def sort_string(s):
提取所有的英文字母并按字母表排序,同时保留原始字母的大小写状态
letters = sorted([c for c in s if c.isalpha()], key=lambda x: x.lower())
创建一个结果列表,初始与原字符串相同,用于存放最终结果
result = list(s)
替换result中的字母部分
letter_idx = 0 # letters中字母的索引 for i in range(len(s)): if s[i].isalpha(): result[i] = letters[letter_idx] letter_idx += 1 return ''.join(result)
读取输入
s = input()
输出排序后的字符串
print(sort_string(s))
